課程資訊
課程名稱
系統軟體設計與實作特論
Advanced Topics in Software Systems Design and Implementation 
開課學期
110-2 
授課對象
電機資訊學院  資訊網路與多媒體研究所  
授課教師
黎士瑋 
課號
CSIE5374 
課程識別碼
922 U4770 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期二7,8,9(14:20~17:20) 
上課地點
資111 
備註
限碩士班以上
總人數上限:45人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

This course covers advanced topics in designing and implementing software systems for modern computer hardware. The course consists of two sessions. First, we will offer lectures to introduce the essential software system, the Linux OS kernel, and walk through its design and internals in-depth. The latter part of the course will be composed of a mix of lectures and seminar presentations, covering recent advances in software systems research and developments.

The course will involve kernel programming assignments in C, paper readings, and in-class discussion of classic and new research publications on systems research. The course will cover operating systems, systems security and verification, cloud computing, distributed systems, performance optimization, and programming language.

本課程加簽公告在第一堂課時已公布並截止. 課程開放台大同學旁聽. 有意願旁聽的同學請2/25結束前跟課程助教聯絡. 逾期則不開放登記旁聽.

Thank you! 

課程目標
Acquire hands-on Linux kernel programming experience. Develop an understanding of the technologies used to construct modern software systems and impactful and emerging research topics. 
課程要求
Operating systems and computer architecture are pre-requisites. Background in computer security is highly recommended. Students interested in registering for the course but do not meet the pre-requisite should contact the lecturer for approval. 
預期每週課後學習時數
 
Office Hours
備註: Mondays: 9:00 - 11:00 am 
指定閱讀
 
參考書目
 
評量方式
(僅供參考)
   
課程進度
週次
日期
單元主題
第1週
  Introduction 
第2週
  Linux: bootstrapping, hardware basics, processes 
第3週
  Linux: isolation, system calls, exceptions, interrupts 
第4週
  Linux: synchronization 
第5週
  Linux: scheduling 
第6週
  Linux: virtual memory, memory management 
第7週
  Linux: memory management, devices, modules, io systems 
第8週
  清明節 (no classes) 
第9週
  Linux: io systems, file systems 
第10週
  Linux: security 
第11週
  operating systems variants (library OS, microkernel, kernel-bypass OS) 
第12週
  google infrastructure 
第13週
  distributed systems 
第14週
  programming language and systems 
第15週
  systems security 
第16週
  systems security 
第17週
  formally verified systems